U.S. patent Ser. No. 08/439,266 now U.S. Pat. No. 5,682,249, describes a system for managing colors in a relatively "low-end" color digital printing apparatus, such as a laser printer or ink-jet printer, in which color images are derived from digital data. Because of the memory constraints in certain types of printers, it is not always possible to provide a system whereby specific desired colors can simply be called forth on demand. Rather, the system described in the above-referenced patent relies on a dynamic "color table". The color table is a relatively small list of digital (typically 32-bit) codes, each code describing one particular color. In order to describe a particular color, the code must contain groups of digits, which are assigned to, typically, one of three possible "stimuli." Thus, to take the example of describing colors in RGB space, each code or part of a code describing one color will include, in a predetermined order, bits describing the amount of red, bits describing the amount of green, and bits describing the amount of blue necessary to obtain the desired color.
In the patent application referenced above, a special arrangement is described whereby a square array of 16 pixels in an image desired to be printed is compressed into a 32-bit block description. In one embodiment, different conventions exist for describing different types of images within each 16-pixel block. For example, if a particular 16-pixel block from the image contains pixels of one uniform color, the 32-bit block description will be of one particular format. If, however, the 16-pixel array includes pixels of two colors (such as if the pixels describe the border of one graphic next to another), a special format is used for the 32-bit block description: the first 4 bits are used to identify the block description as being of this two-color format; the next 12 bits are an index reference to a color table, such as will be described below; and the final 16 bits describe the relative position of colors in the 16-bit pixel array, with, for example, a 0 bit indicating that a first color is assigned to a particular pixel, and a 1 indicating that a second color is assigned to a particular pixel. With reference to the 12-bit index describing a color pair in the 32-bit block description, the 12 bits form a number which can refer to the external color table. The color table is a list of pairs of codes, each code describing the stimuli required to obtain a particular color.